# -*- coding:utf-8 -*-
# Author:Ami
# @Time    : 2018/12/9 9:21

import socket,os,time

server = socket.socket()
server.bind(('localhost', 9999))

server.listen()
while True:
    conn, addr = server.accept()
    print("new conn:", addr)
    while True:
        print("等待新指令")
        data = conn.recv(1024)
        if not data:
            print("客户端已断开")
            break
        print("执行指令：", data)
        cmd_res = os.popen(data.decode()).read()  # 接收字符串，执行结果也是字符串,执行cmd命令
        print("before send", len(cmd_res))
        if len(cmd_res) == 0:
            cmd_res = "cmd has no output..."

        conn.send(str(len(cmd_res.encode())).encode('utf-8'))
        client_ack = conn.recv(1024)
        print("ack from client:",client_ack)
        conn.send(cmd_res.encode('utf-8'))  # 发给客户端
        print("send done")
server.close()
